using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.ComponentModel;
using ACME.Northwind.DataTransfer;
using System.Runtime.Serialization;

namespace ACME.Northwind.DataTransfer
{
	/// <summary>
	/// Object data transfer definition for the 'Products' table
	/// </summary>
	[Serializable()]
	[DataContract()]
	public partial class ProductDTO : IDTO
	{
		#region Class Members

		#region FieldNameConstants Enumeration

		/// <summary>
		/// An enumeration of this object's fields
		/// </summary>
		public enum FieldNameConstants
		{
			 /// <summary>
			 /// Field mapping for the 'CategoryId' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'CategoryId' property")]
			CategoryId,
			 /// <summary>
			 /// Field mapping for the 'UnitsOnOrder' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'UnitsOnOrder' property")]
			UnitsOnOrder,
			 /// <summary>
			 /// Field mapping for the 'UnitsInStock' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'UnitsInStock' property")]
			UnitsInStock,
			 /// <summary>
			 /// Field mapping for the 'UnitPrice' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'UnitPrice' property")]
			UnitPrice,
			 /// <summary>
			 /// Field mapping for the 'SupplierId' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'SupplierId' property")]
			SupplierId,
			 /// <summary>
			 /// Field mapping for the 'ReorderLevel' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'ReorderLevel' property")]
			ReorderLevel,
			 /// <summary>
			 /// Field mapping for the 'QuantityPerUnit' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'QuantityPerUnit' property")]
			QuantityPerUnit,
			 /// <summary>
			 /// Field mapping for the 'ProductName' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'ProductName' property")]
			ProductName,
			 /// <summary>
			 /// Field mapping for the 'ProductId' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'ProductId' property")]
			ProductId,
			 /// <summary>
			 /// Field mapping for the 'Discontinued' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'Discontinued' property")]
			Discontinued,
			 /// <summary>
			 /// Field mapping for the 'CreatedBy' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'CreatedBy' property")]
			CreatedBy,
			 /// <summary>
			 /// Field mapping for the 'CreatedDate' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'CreatedDate' property")]
			CreatedDate,
			 /// <summary>
			 /// Field mapping for the 'ModifiedBy' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'ModifiedBy' property")]
			ModifiedBy,
			 /// <summary>
			 /// Field mapping for the 'ModifiedDate' property
			 /// </summary>
			[System.ComponentModel.Description("Field mapping for the 'ModifiedDate' property")]
			ModifiedDate,
		}

		#endregion

		#endregion

		#region Constructors

		/// <summary>
		/// The default contructor for the Product DTO
		/// </summary>
		public ProductDTO()
		{
		}

		#endregion

		#region Object Properties

		/// <summary>
		/// The CategoryId field
		/// </summary>
		[DataMember()]
		public virtual int? CategoryId { get; set; }
		/// <summary>
		/// The Discontinued field
		/// </summary>
		[DataMember()]
		public virtual bool Discontinued { get; set; }
		/// <summary>
		/// The ProductId field
		/// </summary>
		[DataMember()]
		public virtual int ProductId { get; set; }
		/// <summary>
		/// The ProductName field
		/// </summary>
		[DataMember()]
		public virtual string ProductName { get; set; }
		/// <summary>
		/// The QuantityPerUnit field
		/// </summary>
		[DataMember()]
		public virtual string QuantityPerUnit { get; set; }
		/// <summary>
		/// The ReorderLevel field
		/// </summary>
		[DataMember()]
		public virtual short? ReorderLevel { get; set; }
		/// <summary>
		/// The SupplierId field
		/// </summary>
		[DataMember()]
		public virtual int? SupplierId { get; set; }
		/// <summary>
		/// The UnitPrice field
		/// </summary>
		[DataMember()]
		public virtual decimal? UnitPrice { get; set; }
		/// <summary>
		/// The UnitsInStock field
		/// </summary>
		[DataMember()]
		public virtual short? UnitsInStock { get; set; }
		/// <summary>
		/// The UnitsOnOrder field
		/// </summary>
		[DataMember()]
		public virtual short? UnitsOnOrder { get; set; }
		/// <summary>
		/// The CreatedDate field
		/// </summary>
		[DataMember()]
		public virtual DateTime? CreatedDate { get; set; }
		/// <summary>
		/// The CreatedBy field
		/// </summary>
		[DataMember()]
		public virtual string CreatedBy { get; set; }
		/// <summary>
		/// The ModifiedDate field
		/// </summary>
		[DataMember()]
		public virtual DateTime? ModifiedDate { get; set; }
		/// <summary>
		/// The ModifiedBy field
		/// </summary>
		[DataMember()]
		public virtual string ModifiedBy { get; set; }

		#endregion

	}

}
